package ar.com.age.distribuidora.service.impl;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import ar.com.age.distribuidora.dao.LoteDeCompraDao;
import ar.com.age.distribuidora.dominio.LoteDeCompra;
import ar.com.age.distribuidora.service.LoteDeCompraService;

public class LoteDeCompraServiceImpl implements LoteDeCompraService {

	private LoteDeCompraDao loteDao;
	
    @Autowired(required = true)
	public void setLoteDeCompraDao(LoteDeCompraDao loteDao) {
		this.loteDao = loteDao;
	}

	@Override
	public void crearOEditar(LoteDeCompra lote) {
		
		// Cuando la Cantidad Actual llega a 0, tengo que actualizar el estado
		if (lote.getCantidadActual() == 0.0) {
			lote.setEstado("Agotado");
		} 
		
		loteDao.saveOrUpdate(lote);		
	}

	@Override
	public List<LoteDeCompra> buscarTodos() {

		return loteDao.getAll();
	}
	
	@Override
	public void eliminar(LoteDeCompra lote) {
		
		loteDao.physicalDelete(lote);
	}
	
	@Override
	public List<LoteDeCompra> buscar(String codigo, String estado, Date desde, Date hasta, String producto) {

		return loteDao.find(codigo, estado, desde, hasta, producto);
	}
	
}
